<script>
// 后台表字段数据转化为具体配置
export default {
  // 获取-搜索栏配置数据
  getSearchMap: function (moduleMap) {
    // var titleFieldArr = [
    //   {
    //     value: 'title',
    //     label: '标题'
    //   }, {
    //     value: 'content',
    //     label: '内容'
    //   }
    // ]
    var returnMap = {
      titleFieldArr: [],
      typeFieldArr: [],
      timeFieldArr: [],
      numberFieldArr: [],
      isWrite: moduleMap.isWrite
    }
    // 获取可搜索字段
    moduleMap.fieldArr.forEach(function (fieldData, _) {
      if (fieldData.isSearch === true) {
        switch (fieldData.formType) {
          // 文本字段
          case 'ShortText':
          case 'Text':
          case 'LongText':
          case 'Email':
          case 'Json':
            returnMap.titleFieldArr.push({
              value: fieldData.value,
              label: fieldData.name
            })
            break

          // 类型字段
          case 'Type':
          case 'TypeArr':
            returnMap.typeFieldArr.push({
              value: fieldData.value,
              label: fieldData.name,
              arr: moduleMap.typeArr[fieldData.typeKey] ? moduleMap.typeArr[fieldData.typeKey] : []
            })
            break

          // 时间字段
          case 'Date':
          case 'DateTime':
          case 'Auto':
            returnMap.timeFieldArr.push({
              isDate: fieldData.formType === 'Date',
              value: fieldData.value,
              label: fieldData.name
            })
            break

          // 数字
          case 'Integer':
          case 'Money':
            returnMap.numberFieldArr.push({
              value: fieldData.value,
              label: fieldData.name
            })
            break
        }
      }
    })
    // console.log(returnMap)
    return returnMap
  },
  // 获取-列表配置数据
  // getListSittingArr: function (moduleMap) {
  //   console.log(moduleMap)
  // },
  // 获取-表单验证规则
  getFormRule: function (moduleMap) {
    var returnMap = {}
    // console.log(moduleMap)
    moduleMap.fieldArr.forEach(function (fieldData, _) {
      // 不进行表单验证
      if (!(fieldData.formType === 'Auto' || fieldData.formType === 'Pk')) {
        if (!returnMap[fieldData.value]) {
          returnMap[fieldData.value] = []
        }
        // 是否必填判断
        if (fieldData.isRequire === true) {
          returnMap[fieldData.value].push({
            required: true,
            message: '请输入 ' + fieldData.name,
            trigger: ['blur', 'change']
          })
        }
        // 长度判断
        if (fieldData.rules && (fieldData.rules.minLen > 0 || fieldData.rules.maxLen > 0)) {
          // 最小长度,最大长度都有限制
          if (fieldData.rules.minLen > 0 && fieldData.rules.maxLen > 0) {
            returnMap[fieldData.value].push({
              min: fieldData.rules.minLen,
              max: fieldData.rules.maxLen,
              message: fieldData.name + '长度必须在: ' + fieldData.rules.minLen + ',' + fieldData.rules.maxLen + ' 个字符之间',
              trigger: ['blur', 'change']
            })
          } else {
            // 仅有最小长度限制
            if (fieldData.rules.minLen > 0) {
              returnMap[fieldData.value].push({
                min: fieldData.rules.minLen,
                message: fieldData.name + '长度必须在: ' + fieldData.rules.minLen + ' 字符以上 ',
                trigger: ['blur', 'change']
              })
            }
            // 仅有最大长度限制
            if (fieldData.rules.maxLen > 0) {
              returnMap[fieldData.value].push({
                min: fieldData.rules.maxLen,
                message: fieldData.name + '长度必须在: ' + fieldData.rules.maxLen + ' 字符以下 ',
                trigger: ['blur', 'change']
              })
            }
          }
        }
        // 邮箱类型判断
        if (fieldData.formType === 'Email') {
          returnMap[fieldData.value].push({
            type: 'email',
            message: fieldData.name + ',必须是标准的邮箱格式: 如: 666448@qq.com,demo1106z@126.com',
            trigger: ['blur', 'change']
          })
        }
        // 数字类型判断
        if (fieldData.formType === 'Integer') {
          returnMap[fieldData.value].push({
            type: 'integer',
            message: fieldData.name + ',必须为 整形值',
            trigger: ['blur', 'change']
          })
        }
        if (fieldData.formType === 'Money') {
          // returnMap[fieldData.value].push({
          //     type: 'string',
          //     message: fieldData.name + ',必须为 数字值',
          //     trigger: ['blur', 'change']
          // })
        }
        // 图片,文件地址类型判断
        if (fieldData.formType === 'Image' || fieldData.formType === 'File') {
          returnMap[fieldData.value].push({type: 'url', message: fieldData.name + ',必须为url地址类型'})
        }
      }
    })
    return returnMap
  },

  // 获取字段数据
  getFeildFromFieldArr: function (fieldArr, fieldKey) {
    var res = null
    fieldArr.forEach(function (fieldData, key) {
      if (fieldData.value === fieldKey) {
        res = fieldData
      }
    })
    return res
  },
  formatImageArr:function (imageArr) {
    let $this=this
    var arr=[]
    imageArr.forEach(function (value, index) {
      arr.push($this.formatImageObj(value))
    })
    return arr
  },
  formatImageObj:function (url) {
    var splitArr = url.split(".")
    var name=splitArr[splitArr.length-2]+'.'+splitArr[splitArr.length-1]
    var obj={
      name:name,
      url:url,
    }
    // imageArr.push(obj)
    return obj
  }
}
</script>
